void main() {
  Man man = Man('Jack', 20);
  man.eat();
  man.drive();
  Woman woman = Woman('Rose', 27);
  woman.eat();
  woman.dressUp();
}

// 人类（父类）
class Person {
  Person(this.name, this.age);

  String? name;
  int? age;

  void eat() {
    print('$name go to eat; Today $age year old');
  }
}

// 男人类（子类）
class Man extends Person {
  // 子类构造参数 - super 代表上一级
  Man(super.name, super.age);

  drive() {
    print('开车');
  }

  // 重写：子类中可以重写父类的方法，执行子类自己的逻辑
  @override
  void eat() {
    print("$name今年$age岁，喜欢吃饭~");
  }
}

// 女人类（子类）
class Woman extends Person {
  // 子类构造参数 - super 代表上一级
  Woman(super.name, super.age);

  dressUp() {
    print('化妆打扮');
  }
}
